﻿Imports System
Imports System.Collections.Generic

Namespace System.Workflow.Runtime.Tracking
    Public Class SqlTrackingQueryOptions
        ' Methods
        Public Sub Clear()
            Me._min = DateTime.MinValue
            Me._max = DateTime.MaxValue
            Me._status = Nothing
            Me._type = Nothing
            Me._dataItems = New List([Of] TrackingDataItemValue)
        End Sub


        ' Properties
        Public Property StatusMaxDateTime As DateTime
            Get
                Return Me._max
            End Get
            Set(ByVal value As DateTime)
                Me._max = value
            End Set
        End Property

        Public Property StatusMinDateTime As DateTime
            Get
                Return Me._min
            End Get
            Set(ByVal value As DateTime)
                Me._min = value
            End Set
        End Property

        Public ReadOnly Property TrackingDataItems As IList([Of] TrackingDataItemValue)
            Get
                Return Me._dataItems
            End Get
        End Property

        Public Property WorkflowStatus As Nullable([Of] WorkflowStatus)
            Get
                Return Me._status
            End Get
            Set(ByVal value As Nullable([Of] WorkflowStatus))
                Me._status = value
            End Set
        End Property

        Public Property WorkflowType As Type
            Get
                Return Me._type
            End Get
            Set(ByVal value As Type)
                Me._type = value
            End Set
        End Property


        ' Fields
        Private _dataItems As List([Of] TrackingDataItemValue) = New List([Of] TrackingDataItemValue)
        Private _max As DateTime = DateTime.MaxValue
        Private _min As DateTime = DateTime.MinValue
        Private _status As Nullable([Of] WorkflowStatus) = Nothing
        Private _type As Type
    End Class
End Namespace

